// pages/userInfo/userInfo.js
const app = getApp();
const util = require("../../utils/check.js");
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo: null,   //用户信息
    hidden: true,   //true：编辑    false：完成
    disabled: true  //true：禁用输入框  false：取消禁用
  },

  //初始化数据
  loadData:function(){
    const userInfo = app.getGlobalUserInfo();
    this.setData({
      userInfo
    })
  },

  /**
   * 编辑个人信息
   */
  editUser() {
    this.setData({
      hidden: false,
      disabled: false
    })
  },

  //保存个人信息
  saveUser:function(e){
    let that = this;
    let user = e.detail.value;  //提交的表单数据
    let userInfo = that.data.userInfo;  //用户登录信息
    console.log("user-----:");
    console.log(user);
    if (user.loginUser === userInfo.loginUser && user.phone === userInfo.phone && 
        user.address === userInfo.address && user.userName === userInfo.userName && 
        user.email === userInfo.email) {
      wx.showToast({
        title: '您未作修改',
        icon: 'none'
      })
      this.setData({
        hidden: true,
        disabled: true
      })
      return;
    }
    //检查邮箱
    if(!util.isValidEmail(user.email)){
      wx.showToast({
        title: '请输入合法的邮箱',
        icon: 'none',
        duration: 2000//持续的时间
      })
      return;
    }
    //检查电话
    if(!util.isValidPhone(user.phone)){
      wx.showToast({
        title: '请输入合法的电话',
        icon: 'none',
        duration: 2000//持续的时间
      })
      return;
    }

    user['id'] = userInfo.id; 
    wx.request({
      url: app.serverUrl + "/book/updateUser",
      // url: app.serverUrl,
      method: 'PUT',
      header: {
        'content-type': 'application/json', // 默认值
        'userId': this.data.userInfo.id, // 用户id
        "userToken": this.data.userInfo.userToken // 用户 token
      },
      data: user,
      success: res => {
        if (res.data.status === 200) {
          userInfo.loginUser = user.loginUser;
          userInfo.phone = user.phone;
          userInfo.address = user.address;
          userInfo.userName = user.userName;
          userInfo.email = user.email;
          this.setData({
            hidden: true,
            disabled: true,
            userInfo: userInfo
          })
          app.setGlobalUserInfo(userInfo);
          wx.showToast({
            title: '更新成功',
            icon: 'success'
          })
        } else if (res.status === 500) {
          wx.showToast({
            title: res.data.msg,
            icon: 'none'
          })
          app.setGlobalUserInfo(null);
        }
      }
    })
  },


  //检查邮箱
  checkEmail:function(e){
    let b = util.isValidEmail(e.detail.value);
    if(!b){
      wx.showToast({
        title: '请输入合法的邮箱',
        icon:'none',
        duration: 2000//持续的时间
      })
    }
  },

  //检查电话
  checkPhone:function(e){
    let b = util.isValidPhone(e.detail.value);
    if (!b) {
      wx.showToast({
        title: '请输入合法的电话',
        icon: 'none',
        duration: 2000//持续的时间
      })
    }
  },

  // 点击按钮换手机相册或者电脑本地图片
  changeFace() {
    wx.chooseImage({
      count: 1, // 默认9 
      sizeType: ['compressed'], // original 原图 compressed 压缩图,可以指定是原图还是压缩图，默认二者都有 
      sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
      success: res => {
        const filePath = res.tempFilePaths[0];
        wx.showLoading({
          title: '上传中...',
        })
        wx.uploadFile({
          url: app.serverUrl + "/user/upload",
          filePath,
          header: {
            'content-type': 'application/json', // 默认值
            'userId': this.data.userInfo.id, // 用户id
            "userToken": this.data.userInfo.userToken // 用户 token
          },
          name: 'file',
          formData: {
            userId: this.data.userInfo.id,
            headImage: this.data.userInfo.headImage
          },
          fail: res => {
            wx.hideLoading();
            wx.showToast({
              title: '网络断开连接...',
              icon: 'none'
            })
          },
          success: res => {
            //console.log(res);
            // 上传文件，默认不会对返回值进行 json 处理
            const result = JSON.parse(res.data);
            wx.hideLoading();
            //console.log(result.status);
            if (result.status === 200) {
              this.setData({
                ['userInfo.headImage']: result.data
              })
              app.setGlobalUserInfo(this.data.userInfo)
              wx.showToast({
                title: '上传成功！~~~',
                icon: 'success'
              })
            } else if (result.status === 500) {
              wx.showToast({
                title: result.data.msg,
                icon: 'none'
              })
            }
          }
        })
      }
    })
  },



  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.loadData();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})